home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / REPLPROV.MO_ / replprov.mof
Encoding:
Text File  |  2003-02-21  |  13.9 KB  |  405 lines

  1. #pragma autorecover
  2. #pragma namespace("\\root")
  3.  
  4. instance of __NAMESPACE
  5. {
  6.     Name = "MicrosoftActiveDirectory";
  7. };
  8.  
  9. #pragma namespace("MicrosoftActiveDirectory")
  10.  
  11. #pragma deleteclass("ReplicationProvider", NOFAIL)
  12. #pragma deleteclass("ReplicationProvider1", NOFAIL)
  13.  
  14.  
  15. /////////////////////////////////////////////////
  16. // Declare an instance of the __Win32Provider ///
  17. /////////////////////////////////////////////////
  18.  
  19. class ReplicationProvider1  : __Win32Provider
  20. {
  21.   // this will override the property on WinXP and it will add a new property on Win2K
  22.   [override("HostingModel") ] string HostingModel;
  23. };
  24.  
  25. instance of ReplicationProvider1 as $P
  26. {
  27.     Name = "ReplProv1" ;
  28.     ClsID = "{29288F43-39B1-40db-B41F-CE899450E911}";
  29.     HostingModel = "NetworkServiceHost";   
  30.               
  31. } ;    
  32.  
  33. instance of __InstanceProviderRegistration
  34. {
  35.     Provider = $P;
  36.     SupportsPut = FALSE;
  37.     SupportsGet = TRUE;
  38.     SupportsDelete = FALSE;
  39.     SupportsEnumeration = TRUE;
  40. };
  41.  
  42. instance of __MethodProviderRegistration
  43. {
  44.     Provider = $P;
  45. };
  46.  
  47.  
  48. //
  49. // The DomainController class is not a singleton though 
  50. // this class is the domain controller that is being accessed
  51. // and there can only be one instance of this class.
  52. //
  53. [dynamic, 
  54.  provider("ReplProv1"), 
  55.  description("The current domain controller properties.")]
  56. class MSAD_DomainController
  57. {
  58.  
  59.     [key, Description ("X.500 path of the ntds-settings object.")]
  60.     String DistinguishedName;
  61.  
  62.     [Description ("Common name of the server object.")]
  63.     String CommonName;
  64.  
  65.     [Description ("Site in which the DC exists.")]
  66.     String SiteName;
  67.  
  68.     [Description ("String-ized GUID of the ntds-settings object.")]
  69.     String NTDsaGUID;
  70.  
  71.     [Description ("TRUE, indicates that the DC is a Global Catalog server.")]
  72.     boolean IsGC = FALSE;
  73.  
  74.     //
  75.     // The next 5 properties describe the current replication queue statistics
  76.     // for the DC
  77.     //
  78.     [Description ("Timestamp of the oldest replication sync operation still"
  79.         " in the queue on this domain controller.")]
  80.     datetime TimeOfOldestReplSync;
  81.  
  82.     [Description ("Timestamp of the oldest replication add operation still"
  83.         " in the queue on this domain controller.")]
  84.     datetime TimeOfOldestReplAdd;
  85.  
  86.     [Description ("Timestamp of the oldest replication delete operation still"
  87.         " in the queue on this domain controller.")]
  88.     datetime TimeOfOldestReplDel;
  89.  
  90.     [Description ("Timestamp of the oldest replication modify operation still"
  91.         " in the queue on this domain controller.")]
  92.     datetime TimeOfOldestReplMod;
  93.  
  94.     [Description ("Timestamp of the oldest replication update operation still"
  95.         " in the queue on this domain controller.")]
  96.     datetime TimeOfOldestReplUpdRefs;
  97.  
  98.     //
  99.     // Both IsNextRIDPoolAvailable and PercentageOfRIDsLeft should be used in
  100.     // conjunction with a flag warning indicating that the DC is 
  101.     // running out of RIDs
  102.     //
  103.     [Description ("TRUE, implies that the DC has obtained another RID pool"
  104.         " and allocation of RIDs on this DC can continue, even if the current"
  105.         " pool of RIDs is exhausted.")]
  106.     boolean IsNextRIDPoolAvailable = FALSE;
  107.  
  108.     [Description ("Percentage of RIDs left of the current RID pool"
  109.         " on this DC.")]
  110.     uint32 PercentOfRIDsLeft;
  111.  
  112.     [Description ("TRUE, implies that the DC is registered correctly in DNS.")]
  113.     boolean IsRegisteredInDNS;
  114.  
  115.     [Description ("TRUE, indicates that the locator service on the DC is"
  116.         " advertising correctly.")]
  117.     boolean IsAdvertisingToLocator = FALSE;
  118.  
  119.     [Description ("TRUE, indicates that the Sysvol share is published"
  120.         " correctly.")]
  121.     boolean IsSysVolReady = FALSE;
  122.  
  123.  
  124.     //
  125.     // METHODS
  126.     //
  127.     // API: DsReplicaConsistencyCheck
  128.     //
  129.     [implemented, Description ("Invokes the Knowledge Consistency Checker in "
  130.                 "order to verify the replication topology.")]
  131.     void ExecuteKCC([in] uint32 TaskID, [in] uint32 dwFlags);     
  132.  
  133. };
  134.  
  135.  
  136. //
  137. // the various Naming Contexts hosted by this Domain controller
  138. // should include Non-domain NCs
  139. //
  140. [dynamic, 
  141.  provider("ReplProv1"),
  142.  description("Various properties of the current Naming Context.")]
  143. class MSAD_NamingContext
  144. {
  145.  
  146.     [key, Description ("X.500 path of the Naming Context.")]
  147.     String DistinguishedName;
  148.  
  149.     [Description ("TRUE, indicates that the NC is read/write, else read only.")]
  150.     boolean IsFullReplica = FALSE;      
  151.  
  152. };
  153.  
  154.  
  155.  
  156. ////////////////////////////////////////////////////////////////////////
  157. // THE FOLLOWING 3 CLASSES ARE OBTAINED FROM THE DsReplicaGetInfo API //
  158. ////////////////////////////////////////////////////////////////////////
  159.  
  160. //
  161. // ReplNeighbor = DS_REPL_NEIGHBOR
  162. //  describes inbound replication state information for a Naming Context 
  163. //  & source server pair. 
  164. //
  165. [dynamic, 
  166.  provider("ReplProv1"), 
  167.  description("Inbound replication state information for a Naming Context "
  168.         "& source server pair.")]
  169. class MSAD_ReplNeighbor
  170. {
  171.  
  172.     [key, Description ("X.500 path for the Naming Context "
  173.             "replicated by this connection.")]
  174.     String  NamingContextDN;
  175.  
  176.     [key, Description ("String-ized GUID for the DSA "
  177.             "representing the source DC.")]
  178.     String  SourceDsaObjGuid;
  179.  
  180.     [Description ("String-ized GUID for the replicated Naming Context.")]
  181.     String  NamingContextObjGuid;
  182.  
  183.     [Description ("X.500 path for the DSA representing the source DC.")]
  184.     String  SourceDsaDN;
  185.  
  186.     [Description ("DNS address of the source DC.  Note that this is "
  187.             "not the commonly-used canonical DNS name, instead "
  188.             "it is a modified GUID.")]
  189.     String  SourceDsaAddress;
  190.  
  191.     [Description ("The invocation ID used by the "
  192.             "source server as of the last replication.")]
  193.     String  SourceDsaInvocationID;
  194.  
  195.     [Description ("X.500 path of the interSiteTransport object "
  196.             "corresponding to he transport over which replication "
  197.             "is performed. NULL for RPC/IP replication.")]
  198.     String  AsyncIntersiteTransportDN;
  199.  
  200.     [Description ("String-ized GUID of the intersite transport object "
  201.             "corresponding to AsyncIntersiteTransportDN.")]
  202.     String  AsyncIntersiteTransportObjGuid;
  203.  
  204.     [Description ("The USnChanged of the last object update received.")]
  205.     uint64  USNLastObjChangeSynced;
  206.  
  207.     [Description ("The usnLastObjChangeSynced value at the end of the last "
  208.             " complete, successful replication cycle, or 0 if none.")]
  209.     uint64  USNAttributeFilter;
  210.  
  211.     [Description ("Timestamp for the last successful replication attempt.")]
  212.     datetime TimeOfLastSyncSuccess;
  213.  
  214.     [Description ("Timestamp for the last replication attempt.")]
  215.     datetime TimeOfLastSyncAttempt;
  216.  
  217.     [Description ("HRESULT error code for the last replication attempt.")]
  218.     uint32  LastSyncResult; 
  219.  
  220.     [Description ("Number of consecutive failed replication attempts.")]
  221.     uint32  NumConsecutiveSyncFailures;
  222.  
  223.     uint32  ReplicaFlags;
  224.  
  225.     // Bit values extracted from dwReplicaFlags
  226.         // #define DS_REPL_NBR_WRITEABLE                       (0x10)
  227.         // #define DS_REPL_NBR_SYNC_ON_STARTUP                 (0x20)
  228.         // #define DS_REPL_NBR_DO_SCHEDULED_SYNCS              (0x40)
  229.         // #define DS_REPL_NBR_USE_ASYNC_INTERSITE_TRANSPORT   (0x80)
  230.         // #define DS_REPL_NBR_TWO_WAY_SYNC                    (0x200)
  231.         // #define DS_REPL_NBR_FULL_SYNC_IN_PROGRESS           (0x10000)
  232.         // #define DS_REPL_NBR_FULL_SYNC_NEXT_PACKET           (0x20000)
  233.         // #define DS_REPL_NBR_NEVER_SYNCED                    (0x200000)
  234.         // #define DS_REPL_NBR_IGNORE_CHANGE_NOTIFICATIONS     (0x4000000)
  235.         // #define DS_REPL_NBR_DISABLE_SCHEDULED_SYNC          (0x8000000)
  236.         // #define DS_REPL_NBR_COMPRESS_CHANGES                (0x10000000)
  237.         // #define DS_REPL_NBR_NO_CHANGE_NOTIFICATIONS         (0x20000000)
  238.  
  239.     boolean Writeable = FALSE;
  240.     boolean SyncOnStartup = FALSE;
  241.     boolean DoScheduledSyncs = FALSE;
  242.     boolean UseAsyncIntersiteTransport = FALSE;
  243.     boolean TwoWaySync = FALSE;
  244.     boolean FullSyncInProgress = FALSE;
  245.     boolean FullSyncNextPacket = FALSE;
  246.     boolean NeverSynced = FALSE;
  247.     boolean IgnoreChangeNotifications = FALSE;
  248.     boolean DisableScheduledSync = FALSE;
  249.     boolean CompressChanges = FALSE;
  250.     boolean NoChangeNotifications = FALSE;
  251.  
  252.     ///////////////////////////////////////////////////////////////////////////
  253.     // the following properties aren't directly mapped to the API properties //
  254.     ///////////////////////////////////////////////////////////////////////////
  255.  
  256.     //
  257.     // These 'other properties' are derived from the regular properties 
  258.     // present in the DS_Repl_Neighbor structure
  259.     //
  260.  
  261.     [Description ("Site containing the source DC.")]
  262.     String  SourceDsaSite;
  263.     
  264.     [Description ("Object path component for the DSA representing "
  265.             "the source DC.  This is often similar to the "
  266.             "computername but is not always identical.")]
  267.     String  SourceDsaCN;
  268.  
  269.     [Description ("Canonical name of the domain of the replicated"
  270.             " Naming Context.")]
  271.     String  Domain;
  272.  
  273.     [Description ("True if this connection represents a source DC which "
  274.             "has been deleted.  By design, the DS will continue "
  275.             "to replicate these connections for some time "
  276.             "after the source DC is deleted.")]
  277.     boolean IsDeletedSourceDsa = FALSE;
  278.     
  279.     [Description ("Number of consecutive failed replication attempts "
  280.             "excepting connections which are expected to fail "
  281.             "(i.e. IsDeletedSourceDsa property).")]
  282.     uint32  ModifiedNumConsecutiveSyncFailures;
  283.  
  284.     //
  285.     // METHODS  
  286.     //
  287.     //    
  288.     // API: DsReplicaSync
  289.     //
  290.     [implemented, Description ("synchronizes a destination Naming Context with"
  291.                 " one of its sources.")]                                       
  292.     void SyncNamingContext([in] uint32 Options);    
  293.  
  294. };
  295.  
  296.  
  297. //
  298. // ReplCursor = DS_REPL_CURSOR
  299. //  contains inbound replication state information with respect 
  300. //  to all replicas of a given Naming Context.  This state information 
  301. //  indicates up to what USN X the destination server has seen all 
  302. //  changes <= USN X originated by the source server
  303. //  with the given invocation ID.
  304. //    
  305. [dynamic, 
  306.  provider("ReplProv1"), 
  307.  description("Contains inbound replication state information with respect"
  308.     " to all replicas of a given Naming Context.  This state information"
  309.     " indicates up to what USN X the destination server has seen all"
  310.     " changes <= USN X originated by the source server with the"
  311.     " given invocation ID.")]
  312. class MSAD_ReplCursor
  313. {
  314.  
  315.     [key, Description ("X.500 path for the Naming Context "
  316.             "that holds this cursor.")]
  317.     String NamingContextDN;
  318.  
  319.     [key, Description ("String-ized version of the invocation ID of the"
  320.             " originating server to which the usnAttributeFilter corresponds.")] 
  321.     String SourceDsaInvocationID;
  322.  
  323.     [Description ("The maximum USN X to which the destination server"
  324.         " can assert it has seen all changes originated by the given"
  325.         " server at USNs <= X.")]
  326.     uint64 USNAttributeFilter;
  327.  
  328.     [Description ("X.500 path for the DSA "
  329.         "representing the source DC.")]
  330.     String  SourceDsaDN;
  331.  
  332.     [Description ("Timestamp of the last successful replication sync with the"
  333.         " source DSA. Indicates the time when this DC last saw changes made"
  334.         " on the source DSA for this Naming Context.")]
  335.     datetime TimeOfLastSuccessfulSync;
  336.     
  337.  
  338. };
  339.  
  340. //
  341. // ReplPendingOp = DS_REPL_PENDING_OP
  342. //  describes a replication task currently executing or 
  343. //  pending execution on the DC
  344. //
  345. [dynamic, 
  346.  provider("ReplProv1"),
  347.  description("Describes a replication task currently executing or"
  348.         "pending execution on the DC.")]
  349. class MSAD_ReplPendingOp
  350. {
  351.  
  352.     [key, Description ("ID of the operation, unique per-machine per-boot.")]
  353.     uint32 SerialNumber;
  354.  
  355.     [Description ("Postion of this operation in the queue.")]
  356.     uint32 PositionInQ;
  357.  
  358.     // corresponds to ftimeCurrentOpStarted in the DS_REPL_PENDING_OPS struct
  359.     [Description ("Time when the operation was started ie. execution time. "
  360.             "NULL if still in queue.")]
  361.     datetime OpStartTime;
  362.  
  363.     [Description ("The time at which this operation was enqueued.")]
  364.     datetime TimeEnqueued;
  365.  
  366.     [Description ("Priority of this operation.  Higher priority tasks " 
  367.             "are executed first.  The priority is calculated by "
  368.             "the server based on the type of operation and its parameters.")]
  369.     uint32   Priority;
  370.  
  371.     [Description ("Multivalued - needs to be interpreted per SDK")]
  372.     uint32   OpType;
  373.  
  374.     [Description ("Multivalued - needs to be interpreted per SDK")]
  375.     uint32   Options;
  376.  
  377.     [Description ("X.500 path of the Naming Context "
  378.             "associated with this operation.")]
  379.     String   NamingContextDN;
  380.  
  381.     [Description ("String-ized version of the objectGuid of the Naming Context"
  382.             " identified by NamingContextDN.")]  
  383.     String   NamingContextObjGuid;
  384.  
  385.     [Description ("X.500 path of the DSA "
  386.             "associated with the remote server corresponding "
  387.             "to this operation, or NULL if none.")]
  388.     String   DsaDN;
  389.  
  390.     [Description ("The transport-specific network address of the remote "
  391.             "server associated with this operation, or NULL if none.")]
  392.     String   DsaAddress;
  393.  
  394.     [Description ("String-ized version of the objectGuid "
  395.         "of the DSA identified by DsaDN.")]
  396.     String   DsaObjGuid;
  397.  
  398. };
  399.  
  400.  
  401. ////////////////////////////////////////////////////////////////////////
  402. // THE ABOVE 3 CLASSES ARE OBTAINED FROM THE DsReplicaGetInfo API    ///
  403. ////////////////////////////////////////////////////////////////////////
  404.  
  405.